﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

using hercules.Models.Dados;

namespace hercules.Models.Negocio
{
    public class NegocioCliente
    {
        private readonly IRepositorioGenerico<Pessoa, ControleEstoqueEntities> repositorioPessoa;

        public NegocioCliente()
        {
            repositorioPessoa = new RepositorioGenerico<Pessoa, ControleEstoqueEntities>("chave");
        }


        public bool Inserir(Pessoa cliente)
        {
            repositorioPessoa.Inserir(cliente);
            return repositorioPessoa.SaveChanges() > 0;
        }

        public bool Editar(Pessoa cliente)
        {
            Pessoa _cliente = Obter(cliente.idPessoa);
            _cliente.agencia = cliente.agencia;
            _cliente.bairro = cliente.bairro;
            _cliente.banco = cliente.banco;
            _cliente.cep = cliente.cep;
            _cliente.cidade = cliente.cidade;
            _cliente.cnpj = cliente.cnpj;
            _cliente.conta = cliente.conta;
            _cliente.cpf = cliente.cpf;
            _cliente.email = cliente.email;
            _cliente.endereco = cliente.endereco;
            _cliente.estado = cliente.estado;
            _cliente.insc_estadual = cliente.insc_estadual;
            _cliente.nome = cliente.nome;
            _cliente.representante = cliente.representante;
            _cliente.rg = cliente.rg;

            //repositorioPessoa.Attach(cliente);

            return repositorioPessoa.SaveChanges() > 0;
        }

        public bool Remover(Int32 codPessoa)
        {
            repositorioPessoa.Remover(cliente => cliente.idPessoa == codPessoa);
            return repositorioPessoa.SaveChanges() > 0;
        }

        public List<Pessoa> ObterTodos()
        {
            return repositorioPessoa.ObterTodos().ToList();
        }

        public Pessoa Obter(int codPessoa)
        {
            return repositorioPessoa.ObterEntidade(cliente => cliente.idPessoa == codPessoa);
        }

        public bool EqualsCliente(Pessoa cliente1, Pessoa cliente2)
        { 
            //TODO: IMPLEMENTAR MÉTODO EQUALS
            return true;
        }
    }
}